package models

import (
	"github.com/jinzhu/gorm"
)

// Attachment 附件模型
type Attachment struct {
	gorm.Model
	FileName string `gorm:"type:varchar(255);not null" json:"file_name"` // 文件名
	FilePath string `gorm:"type:varchar(255);not null" json:"file_path"` // 文件存储路径
	FileType string `gorm:"type:varchar(50);not null" json:"file_type"`  // 文件类型
	FileSize int64  `gorm:"type:bigint;not null" json:"file_size"`       // 文件大小（字节）

	// 外键，指向文章表
	PostID uint `gorm:"index" json:"post_id"`

	// 外键，指向用户表
	UserID uint `gorm:"index" json:"user_id"`

	// 关系映射
	Post Post `gorm:"foreignKey:PostID;references:ID" json:"post"` // 关联的文章
	User User `gorm:"foreignKey:UserID;references:ID" json:"user"` // 关联的用户
}

// TableName 定义数据库表名
func (Attachment) TableName() string {
	return "attachments"
}
